summaryrefslogtreecommitdiff
path: root/sql/sql_cte.h
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2021-03-18 14:43:08 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2021-03-18 14:43:08 +0200
commit126725421e56293d7c8b816e066271606b59dcd5 (patch)
tree4210f684a907d615da1c34b280218449d1118141 /sql/sql_cte.h
parent39c015b77e0b5adced487ef634f87b39b9b4abc0 (diff)
downloadmariadb-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/sql_cte.h')
0 files changed, 0 insertions, 0 deletions