maria:bb-11.0-galera-split-wsrep-provider-options

Last commit made on 2023-01-25
Get this branch:
git clone -b bb-11.0-galera-split-wsrep-provider-options https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-11.0-galera-split-wsrep-provider-options
Repository:
lp:maria

Recent commits

e09624f... by Jan Lindström

MDEV-30318 : galera error messages in mariadb log without galera enabled

Do not compile wsrep_provider plugin if WITH_WSREP is not enabled.
We should not enable wsrep_provider plugin if WSREP_ON=OFF and
at that case we can only print information that Plugin
'wsrep-provider' is disabled.

Make sure tests require Galera library 26.4.14 if needed.

5f4a0e4... by Jan Lindström

MDEV-30133 : MariaDB startup does not validate plugin-wsrep-provider when wsrep_mode=off or wsrep_provider is not set

Refuse to start if WSREP_ON=OFF or wsrep_provider is not set or
it is set to 'none' if plugin-wsrep-provider is used.

abada62... by Jan Lindström

MDEV-30120 : Update the wsrep_provider_options read_only value in the system_variables table.

When wsrep-provider-options plugin is initialized we need to update
wsrep-provider-options variable as READ_ONLY.

4096572... by Daniele Sciascia <email address hidden>

MDEV-22570 Implement wsrep_provider_options as plugin

- Provider options are read from the provider during
  startup, before plugins are initialized.
- New wsrep_provider plugin for which sysvars are generated
  dynamically from options read from the provider.
- The plugin is enabled by option plugin-wsrep-provider=ON.
  If enabled, wsrep_provider_options can no longer be used,
  (an error is raised on attempts to do so).
- Each option is either string, integer, double or bool
- Options can be dynamic / readonly
- Options can be deprecated

Limitations:

- We do not check that the value of a provider option falls
  within a certain range. This type of validation is still
  done in Galera side.

Reviewed-by: Jan Lindström <email address hidden>

986d39c... by Marko Mäkelä

MDEV-29694 follow-up: Simplify mlog_init_t

The Boolean flag mlog_init_t::init::created was only needed by
mark_ibuf_exist(), which commit f27e9c894779a4c7ebe6446ba9aa408f1771c114
removed. We only need to store the page initialization LSN in the map.

75c7831... by Marko Mäkelä

Merge 10.11 into 11.0

a30d425... by Marko Mäkelä

MDEV-26790 InnoDB read-ahead may cause page writes

buf_LRU_get_free_block(): Replace the Boolean parameter with a
ternary parameter, so that have_no_mutex_soft can be specified
reduce the chances of initiating page eviction flushing in read-ahead.

buf_read_acquire(): Invoke buf_LRU_get_free_block(have_no_mutex_soft)
and check in each caller for a nullptr return value.

d6aed21... by Marko Mäkelä

MDEV-30216 Read-ahead unnecessarily allocates and frees pages when a page is in the buffer pool

buf_pool_t::page_hash_contains(): Check if a page is cached.

buf_read_ahead_random(), buf_read_page_background(),
buf_read_ahead_linear(): Before invoking buf_read_page_low(),
preallocate a buffer page for the read request.

buf_read_page(), buf_page_init_for_read(), buf_read_page_low():
Add a parameter for the buf_pool.page_hash chain, to avoid duplicated
computations.

buf_page_t::read_complete(): Only attempt recovery if an uncompressed
page frame has been allocated.

buf_page_init_for_read(): Before trying to acquire buf_pool.mutex, acquire
an exclusive buf_pool.page_hash latch and check if the page is already
located in the buffer pool. If the buf_pool.mutex is not immediately
available, release both latches and acquire them in the correct order,
and then recheck if the page is already in the buffer pool. This should
hopefully reduce some contention on buf_pool.mutex.

buf_page_init_for_read(), buf_read_page_low(): Input the "recovery needed"
flag in the least significant bit of zip_size.

buf_read_acquire(), buf_read_release(): Interface for allocating and
freeing buffer pages for reading.

buf_read_recv_pages(): Set the flag that recovery is needed.
Other ROW_FORMAT=COMPRESSED reads during recovery
will not need any recovery.

10635c2... by Marko Mäkelä

Merge 10.10 into 10.11

51fc6b9... by Marko Mäkelä

Merge 10.9 into 10.10