The documentation here https://mariadb.com/kb/en/mariabackup-options/#-ftwrl-wait-timeout states, that --ftwrl-wait-tiomeout option behaves like the following: "If it encounters statements still in the process of executing, it waits until they complete before setting the lock." The fix for MDEV-20230 extends this functionality. Now it also finish mariabackup execution if backup lock(for the versions <10.4 this is FTWRL, for the versions >=10.4 this is "BACKUP STAGE BLOCK_COMMIT") can not be grubbed for the number of seconds pointed in this option.
Attachments
Issue Links
relates to
MDEV-20230mariabackup --ftwrl-wait-timeout never times out on explicit lock
Defines the timeout to wait for queries before trying to acquire the global lock. In MariaDB 10.4 and later, the global lock refers to BACKUP STAGE BLOCK_COMMIT. In MariaDB 10.3 and before, the global lock refers to FLUSH TABLES WITH READ LOCK (FTWRL).
--ftwrl-wait-timeout=#
When Mariabackup runs, it acquires a global lock to prevent data from changing during the backup process and ensure a consistent record. If it encounters statements still in the process of executing, it can be configured to wait until the statements complete before trying to acquire the global lock.
If the --ftwrl-wait-timeout is set to 0, then Mariabackup tries to acquire the global lock immediately without waiting. This is the default value.
If the --ftwrl-wait-timeout is set to a non-zero value, then Mariabackup waits for the configured number of seconds until trying to acquire the global lock.
Starting in MariaDB 10.5.3, MariaDB 10.4.13, MariaDB 10.3.23, and MariaDB 10.2.32, Mariabackup will exit if it can't acquire the global lock after waiting for the configured number of seconds. In earlier versions, it could wait for the global lock indefinitely, even if --ftwrl-wait-timeout was set to a non-zero value.
Geoff Montee (Inactive)
added a comment - - edited vlad.lesin and hholzgra ,
I updated the text here:
Defines the timeout to wait for queries before trying to acquire the global lock. In MariaDB 10.4 and later, the global lock refers to BACKUP STAGE BLOCK_COMMIT. In MariaDB 10.3 and before, the global lock refers to FLUSH TABLES WITH READ LOCK (FTWRL).
--ftwrl-wait-timeout=#
When Mariabackup runs, it acquires a global lock to prevent data from changing during the backup process and ensure a consistent record. If it encounters statements still in the process of executing, it can be configured to wait until the statements complete before trying to acquire the global lock.
If the --ftwrl-wait-timeout is set to 0, then Mariabackup tries to acquire the global lock immediately without waiting. This is the default value.
If the --ftwrl-wait-timeout is set to a non-zero value, then Mariabackup waits for the configured number of seconds until trying to acquire the global lock.
Starting in MariaDB 10.5.3, MariaDB 10.4.13, MariaDB 10.3.23, and MariaDB 10.2.32, Mariabackup will exit if it can't acquire the global lock after waiting for the configured number of seconds. In earlier versions, it could wait for the global lock indefinitely, even if --ftwrl-wait-timeout was set to a non-zero value.
$ mariabackup --backup \
--ftwrl-wait-query-type=UPDATE \
--ftwrl-wait-timeout=5
https://mariadb.com/kb/en/mariabackup-options/#-ftwrl-wait-timeout
Please let me know if you have any feedback.
Thanks!
vlad.lesin and hholzgra,
I updated the text here:
https://mariadb.com/kb/en/mariabackup-options/#-ftwrl-wait-timeout
Please let me know if you have any feedback.
Thanks!