We’re excited to announce Materialize v25.2, the latest version of Self-Managed Materialize! With this release, the product becomes more performant, secure, and observable. We’ve also expanded the ecosystem of sources and integrations. Let’s take a peek at some of the highlights…
Performance
Columnarized Persistent Storage
Since the start of the year, we’ve been hard at work replacing our persistent data format with a fully columnarized implementation. This new format has a lot of benefits, not the least of which is performance–when benchmarking our new and old storage formats against our TPCH load generator source, the new columnarized format yields an 80% reduction in storage size, and a 2.5x improvement to rehydration times!
This work also led to the introduction of PARTITION BY for materialized views and tables, a feature that can enable significant further improvements to rehydration times and ad-hoc query performance for certain workloads.
Materialize v25.2 ships with this new storage format enabled by default.
WITH MUTUALLY RECURSIVE
Interactive WMR queries that contain clauses that are “loop invariant” (do not change value as the query recursively executes) have gotten significantly faster by allowing them to consistently use indexed data rather than reading from storage.
For one customer, this change made a 100x improvement to interactive WMR query latencies, dropping execution times from 6 seconds to 60ms!
Kafka Sinks
v25.2 picks up our massive improvement to Kafka sink rehydration times when operating against Kafka clusters that don’t use compaction. In one extreme case, we saw rehydration times drop 80x - down from 48 minutes to 35 seconds.
Across-the-board improvements
Outside of the targeting improvements above, we additionally shipped many smaller performance improvements, in total making Materialize v25.2 on average ~13% faster and use ~7% less memory than Materialize v25.1 according to our feature benchmarks.
Security
Role-based Access Control
Materialize v25.2 introduces the full breadth of Materialize’s role-based access controls (RBAC) to self-managed users, allowing fine-grained controls over data access no matter where Materialize is running.
As part of supporting RBAC, Materialize v25.2 introduces per-role password-based authentication, currently in public preview. See the docs for more details on per-role password-based auth and on RBAC.
Observability & Introspection
A major theme of this release is making it easier to observe and introspect on how Materialize is operating. These three new tools let you understand how the system is running and give you starting points for digging in if things are not behaving the way you expect them to across freshness, responsiveness, or resource consumption.
Freshness Dashboard
The Console now ships with a new freshness dashboard to track and monitor the freshness of the data in sources, indexes, materialized views, and sinks:
EXPLAIN ANALYZE
We have introduced a new command, EXPLAIN ANALYZE
that is designed for investigating and optimizing the resource consumption of indexes and materialized views. Aside from reporting on memory and CPU usage, EXPLAIN ANALYZE
can also provide TopK hints to optimize performance.
For more details, review the docs.
EXPLAIN TIMESTAMP
Determining what data a query is allowed to see at the moment it is executed is critical to Materialize’s strong consistency and ability to provide strict serializable and serializable isolation. This process is known as “timestamp selection,” and we recently rewrote our implementation to use a new constraint-based solver.
One of the nice benefits of this change is the ability to introspect a query to see exactly which constraints must be satisfied to serve a query, such as isolation level and the state of the underlying sources. This is particularly valuable when investigating and understanding query responsiveness.
For more details, review the docs.
Ecosystem
Preview: Microsoft SQL Server Source
With this latest release, Microsoft SQL Server joins Postgres and MySQL as native SQL sources in Self-Managed Materialize. You can now replicate data from your SQL Server databases directly into Materialize in real time, using SQL Server’s built-in Change Data Capture (CDC) functionality.
This is a preview feature intended for evaluation and feedback, as we work to harden it for mission-critical production workloads.
For more, see our Changelog post when this was first released to Materialize Cloud last month.
Integrations
Since the release of Materialize v25.1, we have made a number of improvements to how to deploy and operate Self-Managed Materialize.
- Disk usage metrics (when spilling-to-disk is enabled) are now collected out-of-the-box, rather than requiring a variety of Prometheus/Kubernetes services.
- Our Helm chart now supports setting affinities and tolerations on Materialize pods.
- Our Helm chart can now be configured with separate requests vs limits for Materialize cluster pods.
- Our sample Terraform providers all support spilling-to-disk.
- Our sample Terraform providers all support public ingress over TLS.
Conclusion
Already it has been three months since the GA of Self-Managed Materialize, and it’s been a thrill to see how quickly customers have been able to incorporate Materialize into their architectures to better act on fast-changing data, right in their own infrastructure. Materialize v25.2 builds on this momentum with significant performance improvements, RBAC, richer observability tooling, and more integrations.
If you’re a Materialize Cloud user wondering where all of your cool product improvements are—you already have them! Check out our Changelog to keep track of all of the on-going developments as we release new features to Materialize Cloud every week.
New to Materialize? You can get started by choosing the deployment model that works best for you. For Self-Managed Materialize, we offer a completely free Community Edition license as well as an Enterprise Edition with expanded support and unlimited usage. Check out our docs or contact our team to learn more.
We look forward to sharing more innovations in our product and the developer experience in our next self-managed release.