I believe it would be possible to parallelize something in prepare before applying the logs.
For example, validating the deltas:
2024-12-18T15:44:50.819185-03:00 0 [Note] [MY-011825] [Xtrabackup] page size for /backup-mysql/bkp-xtrabackup/incr/2024-12-14_08-05-01/2024-12-14_16-05-02/com/transaction#p#2024_06.ibd.delta is 16384 bytes
2024-12-18T15:44:50.819312-03:00 0 [Note] [MY-011825] [Xtrabackup] Applying /backup-mysql/bkp-xtrabackup/incr/2024-12-14_08-05-01/2024-12-14_16-05-02/com/transaction#p#2024_06.ibd.delta to ./com/transaction#p#2024_06.ibd
From what I’ve seen, this is done with one thread, couldn’t it be parallel?
Thanks for the feedback!
Hi @matthewb ,
Error when using Smart memory.
xtrabackup --parallel=8 --use-free-memory-pct=50 --prepare --apply-log-only --target-dir=/backup-mysql/
2024-12-20T17:31:58.145973-03:00 0 [Note] [MY-012955] [InnoDB] Initializing buffer pool, total size = 17179869183.875000G, instances = 1, chunk size =128.000000M
2024-12-20T20:31:58Z UTC - mysqld got signal 11 ;
Signal SIGSEGV (unknown siginfo_t::si_code) at address 0x0
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
BuildID[sha1]=
Thread pointer: 0x0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0 thread_stack 0x100000
#0 0x5e1d81363370 <unknown>
#1 0x79a20e84531f <unknown> at sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
#2 0x5e1d814b9fa5 <unknown>
#3 0x5e1d814bfc76 <unknown>
#4 0x5e1d814dca3d <unknown>
#5 0x79a20ececdb3 <unknown>
#6 0x79a20e89ca93 start_thread at ./nptl/pthread_create.c:447
#7 0x79a20e929c3b clone3 at sysdeps/unix/sysv/linux/x86_64/clone3.S:78
#8 0xffffffffffffffff <unknown>
Hey @CharlesR,
What command did you use to take the backup before using the smart memory? This feature is in technical preview, so anything you can help us with, I’ll tag the lead developer here.
Hey @matthewb,
xtrabackup: version 8.4.0-1 based
mysql: Ver 8.4.3 for Linux on x86_64 (MySQL Community Server - GPL)
Follow the command:
xtrabackup --backup --estimate-memory=ON --parallel=8 --comp
ress --compress-threads=6 --compress-zstd-level=6 --slave-info --safe-slave- backup --host=localhost --target-dir=/backup-mysql/bkp-xtrabackup/base/2024-12-20_00-05-01
You could take advantage and ask them to implement parallel in Applying delta, being_deleted, deleted_cache etc.
For databases with many schemas and multiple tables, which is my case, it is very slow to restore with a full database and at least 2 incremental databases.
Thanks!
Hi @matthewb ,
Since multiple incremental restores are slow to apply deltas etc.
I’m temporarily doing incrementals always from the base.
As a result, all incrementals are now ~200% larger than doing the inc of the previous incremental.
But I can restore the entire base in 108 minutes instead of the previous 233.
Best Regards!