OFICIAL Google Cloud Blog

Spanner: Removing cumulative mutation limits for DML transactions

What happened
Based on Google Cloud Blog · Sep 09, 2026

Google Cloud’s Spanner database removes cumulative mutation limits for DML transactions, enabling larger, more complex operations while maintaining strong consistency and scalability.

Spanner: Removing cumulative mutation limits for DML transactions
Google Cloud Blog — Google
Key points
·
Spanner removes the 80,000 cumulative mutation limit per transaction, shifting it to individual DML statements
·
Each DML statement must stay under 80,000 mods; transactions can now include any number of compliant statements
·
Existing Spanner client libraries require no updates, but larger transactions may increase lock contention risks

Spanner is Google Cloud’s distributed relational database designed for high availability and horizontal scale, supporting critical workloads in industries such as banking, retail, and AI infrastructure. The service ensures strong consistency through ACID transactions, where all operations in a transaction must succeed or fail together. Previously, Spanner enforced a cumulative mutation limit of 80,000 mods per transaction, calculated from row and column updates plus index changes, which constrained complex operations. This limit was intended to balance performance and resource usage but became restrictive as applications evolved to handle larger datasets and more intricate workflows.

The update shifts the 80,000 mutation mod limit from the transaction level to individual DML statements, allowing transactions to include any number of statements as long as each remains under the threshold. This change removes artificial constraints on transaction size, enabling developers to group operations logically without splitting them to comply with limits. Existing Spanner client libraries remain compatible, requiring no code changes, though larger transactions may increase lock contention and abort risks due to prolonged resource holding.

Each DML statement, such as INSERT, UPDATE, or DELETE, is now evaluated independently against the 80,000 mod limit, while mutations provided via the Mutation API during a Commit call still adhere to the same threshold. Spanner counts mods based on modified cells, primary keys, and secondary index updates, with transaction-wide mutation totals available in CommitStats for monitoring. Developers can track mutation counts to assess operational load and optimize large operations, such as using Partitioned DML or key pagination if a single statement exceeds the limit.

The change maintains other transaction constraints, including maximum size in bytes, and provides examples demonstrating how multiple DML statements can now execute within a single transaction under the new logic. Spanner remains a trusted platform for operational applications requiring global consistency and scalability, offering flexibility for larger transactions while preserving performance and reliability.

Original source → Deals on Clipraptor.com →