mariadb/mysql-test/suite
Julius Goryavsky 807a71b443 MDEV-29909: SST fails when transferred data is larger than datadir space
This change adds new options for controlling the SST using
the mariabackup method, which in many cases will allow much
more effective management of the free space used during
the SST process.

Two new options have been added, which can be used in the
configuration file by placing them in the [sst] section:

1) The 'sstdir' option sets the path to the temporary directory
where the received files will be placed during the state
transfer process in SST using mariabackup. Before this
change, files were always written to a special directory
<datadir>/.sst, which created a problem if the storage
where datadir resides was close to full. Now, however,
it is possible to specify an arbitrary directory where
the system will place the files received during SST.

Attention! The directory specified with sstdir will be
deleted during the SST process – therefore, it cannot
be the datadir itself or any important user directory
containing valuable files! It must be a working temporary
directory that will be automatically removed by the system
at the end of SST.

The user can also set the special value sstdir='mktemp'.
In this case, the system will automatically create a working
directory for SST using the mktemp utility (possibly using
the tmpdir directory if it is specified in the configuration
file). This directory will be deleted after the SST is completed.

2) The 'cleaning' option allows controlling the timing of the
deletion of the current system state when SST is required.
Currently, as well as by default after this change, the
current state is deleted in parallel with the transfer of new
data during SST. This is optimal in terms of performance but
may cause problems if the storage where datadir resides has
little free space and the same storage is used for receiving
files – because the old files are not deleted immediately,
but only after some time.

If the user is interested in deleting the current state before
the start of SST, which allows freeing up space on the datadir
storage, they can now set the option cleaning='before', and the
current state will be deleted before SST starts. This may be
slower in terms of performance but frees up space, which can
be critical in some user scenarios.

On the other hand, the user can specify cleaning='after' –
in this case, the current state will be deleted only after
the successful completion of data transfer during SST. This
reduces performance and requires more free space but guarantees
that the current state will not be deleted on the node before
the successful completion of data transfer – which can critically
increase reliability in user scenarios where loss of state on
nodes due to a chain of failures during SST transfer creates
a risk of cluster degradation.

If the user specifies cleaning='parallel' or does not set any
value for this option, the system will operate as before –
deleting the current state in parallel with receiving new data.
This maximizes performance but requires large amounts of free
space in the location specified by sstdir and may result in
the loss of node state if data transfer during SST fails.
2025-09-10 19:12:02 +02:00
..
archive test: archive-big test too big for msan 2025-04-07 11:04:53 +02:00
atomic MDEV-36666 - atomic.alter_table still times out often 2025-04-25 10:40:47 +04:00
binlog Merge branch '10.5' into 10.6 2025-01-29 11:17:38 +01:00
binlog_encryption Merge 10.5 into 10.6 2025-03-26 17:09:57 +02:00
client
compat Merge branch '10.5' into 10.6 2025-01-29 11:17:38 +01:00
csv Backporting bugs fixes fixed by MDEV-31340 from 11.5 2024-05-21 14:58:01 +04:00
encryption MDEV-36180 Doublewrite recovery of innodb_checksum_algorithm=full_crc32 page_compressed pages does not work 2025-03-26 12:03:44 +01:00
engines Remove dates from all rdiff files 2025-01-05 16:40:11 +02:00
federated MDEV-31846: enable cursor protocol for test federatedx_create_handlers 2025-04-07 11:04:53 +02:00
funcs_1 MDEV-36848: identify tests with various MSAN suitability 2025-05-28 16:33:49 +10:00
funcs_2 Merge 10.5 into 10.6 2025-03-26 17:09:57 +02:00
galera MDEV-29909: SST fails when transferred data is larger than datadir space 2025-09-10 19:12:02 +02:00
galera_3nodes MTR test to verify that Galera gcs.stateless flag works 2025-08-14 21:59:11 +02:00
galera_3nodes_sr galera mtr tests: synchronization between branches and editions 2025-04-02 04:50:11 +02:00
galera_sr galera tests: synchronization between versions and editions 2025-08-14 17:04:40 +02:00
gcol Merge branch '10.5' into 10.6 2025-04-21 10:43:17 +02:00
handler Merge branch '10.5' into 10.6 2024-12-17 11:06:09 +11:00
heap Merge 10.5 into 10.6 2025-01-20 09:57:37 +02:00
innodb MDEV-37412 Corrupted page during recovery aborts the server 2025-09-10 15:25:58 +03:00
innodb_fts MDEV-30363 InnoDB: Failing assertion: trx->error_state == DB_SUCCESS in que_run_threads 2025-06-16 11:48:06 +02:00
innodb_gis MDEV-36848: identify tests with various MSAN suitability 2025-05-28 16:33:49 +10:00
innodb_i_s
innodb_zip Merge branch '10.5' into 10.6 2025-01-29 11:17:38 +01:00
jp
json MDEV-34679 ER_BAD_FIELD uses non-localizable substrings 2024-10-17 21:37:37 +02:00
large_tests
maria MDEV-34914 maria.bulk_insert_crash fails on s390x (10.6+, Debug) 2025-09-04 17:15:50 +03:00
mariabackup MDEV-36287 mariabackup ignores tables-file 2025-07-16 15:50:50 +03:00
mtr/t Remove dates from all rdiff files 2025-01-05 16:40:11 +02:00
mtr2
multi_source MDEV-24035 Failing assertion: UT_LIST_GET_LEN(lock.trx_locks) == 0 causing disruption and replication failure 2024-12-12 18:02:00 +02:00
optimizer_unfixed_bugs
parts Merge 10.5 into 10.6 2025-03-26 17:09:57 +02:00
perfschema MDEV-36848: identify tests with various MSAN suitability 2025-05-28 16:33:49 +10:00
perfschema_stress
period MDEV-37397 Assertion `bitmap_is_set(&read_partitions, next->id)' failed in int partition_info::vers_set_hist_part(THD *) 2025-09-04 17:20:02 +02:00
plugins Merge branch '10.5' into 10.6 2025-04-21 10:43:17 +02:00
roles Merge 10.5 into 10.6 2025-01-20 09:57:37 +02:00
rpl Bug#37117875 test case 2025-07-25 16:04:10 +02:00
s3 MDEV-29157 SELECT using ror_merged scan fails with s3 tables 2025-06-02 14:02:53 +03:00
sql_sequence MDEV-37302 Assertion failure in Table_triggers_list::add_tables_and_routines_for_triggers upon attempt to insert DEFAULT into non-insertable view 2025-07-24 00:11:48 +02:00
storage_engine
stress MDEV-34453 Trying to read 16384 bytes at 70368744161280 outside the bounds of the file: ./ibdata1 2024-09-20 20:26:43 +05:30
sys_vars MDEV-34388 default stack size under MSAN needs increasing 2025-05-28 16:30:56 +10:00
sysschema
unit
vcol MDEV-29155 CREATE OR REPLACE with self-referencing CHECK hangs 2025-05-29 12:34:07 +03:00
versioning MDEV-36817 Server crashes in do_mark_index_columns instead of 2025-05-23 14:46:34 +03:00
wsrep galera: changes for transition to galera library 26.4.23 2025-07-17 17:21:02 +02:00