maria:bb-10.11-MDEV-28522

Last commit made on 2022-09-19
Get this branch:
git clone -b bb-10.11-MDEV-28522 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.11-MDEV-28522
Repository:
lp:maria

Recent commits

422fb63... by Nayuta Yanagisawa

MDEV-28522 Delete constant SPIDER_SQL_TYPE_*_HS

The HandlerSocket support of Spider has been deleted by MDEV-26858.
Thus, the constants, SPIDER_SQL_TYPE_*_HS, are no longer necessary.

6ebdd30... by Nayuta Yanagisawa

Merge 10.10 into 10.11

8f9df08... by Alexander Barkov

MDEV-19246 Change database and table used for Mariabackup's history

Changing the mariabackup history table from PERCONA_SCHEMA.xtrabackup_history
to mysql.mariabackup_history.

Additionally, extending xb_history.test for better coverage:

- Recording the fact that the history table is created during
  "mariabackup --history" invocation when it does not exist.

- Recording the history table structure (adding SHOW CREATE TABLE)

- Recording how --history vs --history=foo affect the "name" column
  of the history table.

- Recording the fact that two consequent executions of
  "mariabackup --history[=foo]" insert into the history table
  incrementally, without truncating it on every execution.

16c9718... by Daniel Black

MDEV-25341: innodb buffer pool soft decommit of memory

When InnoDB isn't using memory its polite to other system
processes to allow that memory to be used.

Create buf_page_t::set_os_unused, to madvise(MADV_FREE)/
DiscardVirtualMemory innodb buffer pool pages to keep
virtual mapping but allow kernel to reclaim memory.

set_os_unused is called by buf_LRU_block_free_non_file_page
for flushing deallocations to free up memory.

set_os_used is called by buf_block_t::initialise (used by
buf_page_create_low and buf_LRU_get_free_only.

Move MSan (memory sanitizer) directive to be associated with
set_os_{un,}used so that the correctness can be determined by
instrumentation and test cases rather than relying on OS behaviour
at specific times.

Remove existing page information poisoning in
buf_LRU_block_free_non_file_page.

Tested by: Matthias Leich
Reviewer: Marko Mäkelä
Windows Review: Vladislav Vaintroub

c08d404... by Nayuta Yanagisawa

Merge 10.9 into 10.10

87d82dd... by Nayuta Yanagisawa

Merge 10.8 into 10.9

d95ffd3... by Nayuta Yanagisawa

Merge 10.7 into 10.8

3133435... by Nayuta Yanagisawa

Merge 10.6 into 10.7

7002173... by Nayuta Yanagisawa

MDEV-27172 fixup: spider/bugfix.mdev_27172 failed with --ps-protocol

d2e649a... by Marko Mäkelä

MDEV-29440 InnoDB instant ALTER TABLE recovery must use READ UNCOMMITTED

In commit 8f8ba758559e473f643baa0a0601d321c42517b9 (MDEV-27234)
the data dictionary recovery was changed to use READ COMMITTED
so that table-rebuild operations (OPTIMIZE TABLE, TRUNCATE TABLE,
some forms of ALTER TABLE) would be recovered correctly.

However, for operations that avoid a table rebuild thanks to
being able to instantly ADD, DROP or reorder columns, recovery
must use the READ UNCOMMITTED isolation level so that changes to
the hidden metadata record can be rolled back.

We will detect instant operations by detecting uncommitted changes
to SYS_COLUMNS in case there is no uncommitted change of SYS_TABLES.ID
for the table. In any table-rebuilding DDL operation, the SYS_TABLES.ID
(and likely also the table name) will be updated.

As part of rolling back the instant ALTER TABLE operation, after the
operation on the hidden metadata record has been rolled back, a rollback
of an INSERT into SYS_COLUMNS in row_undo_ins_remove_clust_rec() will
invoke trx_t::evict_table() to discard the READ UNCOMMITTED definition
of the table. After that, subsequent recovery steps will load and use
the correct table definition.

Reviewed by: Thirunarayanan Balathandayuthapani
Tested by: Matthias Leich