Percona XtraBackup 8.0.33-28 Accelerates Backup Preparation by Up to 20×
This article explains how Percona XtraBackup 8.0.33-28 introduces a new design that reduces the time required for the backup‑prepare phase, lowers memory and I/O usage, and speeds up SST when adding new nodes to a Percona XtraDB Cluster, with detailed performance benchmarks and code examples.
Overview
Percona XtraBackup 8.0.33-28 brings significant improvements to the backup‑prepare stage, dramatically shortening the time needed for SST (State Snapshot Transfer) when a new node joins a Percona XtraDB Cluster (PXC).
Prepare Phase
During the xtrabackup -prepare operation, XtraBackup copies InnoDB data files and performs crash recovery to produce a consistent database. The prepare phase consists of two sub‑stages:
Redo Log application
Undo Log application
Redo Log Application
Redo logs are applied to pages without any notion of rows or transactions; this stage does not make the database transactionally consistent.
Undo Log Application
Undo logs roll back uncommitted transactions by reading changes from undo pages and re‑applying the old values, ensuring that all uncommitted work is discarded.
Old Design (pre‑8.0.33‑28)
The previous implementation loaded every table’s SDI (Serialized Dictionary Information) from each IBD file into a non‑evictable cache, causing unnecessary memory consumption, I/O, and long prepare times, especially with millions of tables.
Problems included loading tables that did not need rollback, extra I/O for SDI pages, OOM risk, and crashes when the backup directory contained many tables.
New Design (8.0.33‑28 and later)
The new approach builds a table_id → space_id mapping by scanning mysql.indexes and mysql.index_partitions B‑tree pages. Only tables that have pending undo operations are loaded, and they are cached as evictable entries.
When the cache reaches its size limit or a background thread triggers eviction, tables are removed, reducing memory pressure.
Benefits
Lower memory usage
Reduced I/O
Faster prepare phase
Successful completion even with a large number of tables
Quicker SST and node join times
New nodes require less memory to join the cluster
Benchmark Results
Performance tests on backup directories containing 10K, 50K, 100K, and 250K tables show substantial speedups for xtrabackup -prepare with the new design, as illustrated in the accompanying charts.
Conclusion
From version 8.0.33-28 onward, Percona XtraBackup’s prepare operation is faster and more efficient, especially as the number of tables grows, and it considerably reduces the time required for new nodes to complete SST and join a PXC cluster.
Original article: Percona Blog
Aikesheng Open Source Community
The Aikesheng Open Source Community provides stable, enterprise‑grade MySQL open‑source tools and services, releases a premium open‑source component each year (1024), and continuously operates and maintains them.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.