1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-16421 Make system tables crash safe

Make all system tables in mysql directory of type
engine=Aria

Privilege tables are using transactional=1
Statistical tables are using transactional=0, to allow them
to be quickly updated with low overhead.
Help tables are also using transactional=0 as these are only
updated at init time.

Other changes:
- Aria store engine is now a required engine
- Update comment for Aria tables to reflect their new usage
- Fixed that _ma_reset_trn_for_table() removes unlocked table
  from transaction table list. This was needed to allow one
  to lock and unlock system tables separately from other
  tables, for example when reading a procedure from mysql.proc
- Don't give a warning when using transactional=1 for engines
  that is using transactions. This is both logical and also
  to avoid warnings/errors when doing an alter of a privilege
  table to InnoDB.
- Don't abort on warnings from ALTER TABLE for changes that
  would be accepted by CREATE TABLE.
- New created Aria transactional tables are marked as not movable
  (as they include create_rename_lsn).
- bootstrap.test was changed to kill orignal server, as one
  can't anymore have two servers started at same time on same
  data directory and data files.
- Disable maria.small_blocksize as one can't anymore change
  aria block size after system tables are created.
- Speed up creation of help tables by using lock tables.
- wsrep_sst_resync now also copies Aria redo logs.
This commit is contained in:
Michael Widenius
2018-08-02 17:59:11 +03:00
committed by Monty
parent 0e0f1092b8
commit d6d63f4844
74 changed files with 569 additions and 353 deletions

View File

@ -4,6 +4,8 @@
--source include/not_embedded.inc
--source include/have_perfschema.inc
--source include/kill_mysqld.inc
let $outfile= $MYSQLTEST_VARDIR/tmp/bad_option_1.txt;
--disable_warnings
--error 0,1
@ -34,3 +36,4 @@ perl;
EOF
--remove_file $outfile
--source include/start_mysqld.inc

View File

@ -4,6 +4,8 @@
--source include/not_embedded.inc
--source include/have_perfschema.inc
--source include/kill_mysqld.inc
let $outfile= $MYSQLTEST_VARDIR/tmp/bad_option_2.txt;
--disable_warnings
--error 0,1
@ -16,3 +18,4 @@ let $outfile= $MYSQLTEST_VARDIR/tmp/bad_option_2.txt;
--source include/search_pattern_in_file.inc
--remove_file $outfile
--source include/start_mysqld.inc

View File

@ -4,6 +4,8 @@
--source include/not_embedded.inc
--source include/have_perfschema.inc
--source include/kill_mysqld.inc
let $outfile= $MYSQLTEST_VARDIR/tmp/bad_option_3.txt;
--disable_warnings
--error 0,1
@ -34,3 +36,4 @@ perl;
EOF
--remove_file $outfile
--source include/start_mysqld.inc

View File

@ -4,6 +4,8 @@
--source include/not_embedded.inc
--source include/have_perfschema.inc
--source include/kill_mysqld.inc
let $outfile= $MYSQLTEST_VARDIR/tmp/bad_option_4.txt;
--disable_warnings
--error 0,1
@ -34,3 +36,4 @@ perl;
EOF
--remove_file $outfile
--source include/start_mysqld.inc

View File

@ -4,6 +4,8 @@
--source include/not_embedded.inc
--source include/have_perfschema.inc
--source include/kill_mysqld.inc
let $outfile= $MYSQLTEST_VARDIR/tmp/bad_option_5.txt;
--disable_warnings
--error 0,1
@ -37,3 +39,4 @@ perl;
EOF
--remove_file $outfile
--source include/start_mysqld.inc