diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2021-03-18 14:43:08 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2021-03-18 14:43:08 +0200 |
commit | 126725421e56293d7c8b816e066271606b59dcd5 (patch) | |
tree | 4210f684a907d615da1c34b280218449d1118141 /sql/udf_example.def | |
parent | 39c015b77e0b5adced487ef634f87b39b9b4abc0 (diff) | |
download | mariadb-git-126725421e56293d7c8b816e066271606b59dcd5.tar.gz |
MDEV-25121: innodb_flush_method=O_DIRECT fails on compressed tables
Tests with 4096-byte sector size confirm that it is
safe to use O_DIRECT with page_compressed tables.
That had been disabled on Linux, in an attempt to fix MDEV-21584
which had been filed for the O_DIRECT problems earlier.
The fil_node_t::block_size was being set mostly correctly until
commit 10dd290b4b8b8b235c8cf42e100f0a4415629e79 (MDEV-17380)
introduced a regression in MariaDB Server 10.4.4.
fil_node_open_file(): Only avoid setting O_DIRECT on
ROW_FORMAT=COMPRESSED tables that use KEY_BLOCK_SIZE=1 or 2
(1024 or 2048 bytes).
fil_ibd_create(): Avoid setting O_DIRECT on ROW_FORMAT=COMPRESSED tables
that use KEY_BLOCK_SIZE=1 or 2 (1024 or 2048 bytes).
fil_node_t::find_metadata(): Require fstat() to be always invoked
outside Microsoft Windows, so that fil_node_t::block_size can be set.
fil_node_t::read_page0(): Rely on find_metadata() to assign block_size.
Thanks to Vladislav Vaintroub for testing this on Microsoft Windows
using an old-fashioned rotational hard disk with 4KiB sector size.
Reviewed by: Vladislav Vaintroub
This is a port of commit 00f620b27e960c4b96a8392b27742fd5e41a69e3
and commit 6505662c23ba81331d91f65c18e06a759d6f148f from 10.2.
Diffstat (limited to 'sql/udf_example.def')
0 files changed, 0 insertions, 0 deletions