mariadb/storage
Daniel Black d78173828e MDEV-27900: aio handle partial reads/writes
As btrfs showed, a partial read of data in AIO /O_DIRECT circumstances can
really confuse MariaDB.

Filipe Manana (SuSE)[1] showed how database programmers can assume
O_DIRECT is all or nothing.

While a fix was done in the kernel side, we can do better in our code by
requesting that the rest of the block be read/written synchronously if
we do only get a partial read/write.

Per the APIs, a partial read/write can occur before an error, so
reattempting the request will leave the caller with a concrete error to
handle.

[1] https://lore.kernel.org/linux-btrfs/CABVffENfbsC6HjGbskRZGR2NvxbnQi17gAuW65eOM+QRzsr8Bg@mail.gmail.com/T/#mb2738e675e48e0e0778a2e8d1537dec5ec0d3d3a

Also spell synchronously correctly in other files.
2022-03-12 09:47:53 +11:00
..
archive Merge 10.4 into 10.5 2021-04-21 09:01:01 +03:00
blackhole Merge 10.3 into 10.4 2020-11-03 14:49:17 +02:00
cassandra Merge 10.4 into 10.5 2021-11-29 11:16:20 +02:00
columnstore update columnstore to 5.6.4-1 2022-01-29 16:28:31 +01:00
connect Merge branch '10.4' into 10.5 2022-02-01 20:33:04 +01:00
csv Merge branch 'bb-10.4-release' into bb-10.5-release 2021-02-15 16:43:15 +01:00
example Merge 10.4 into 10.5 2022-02-22 10:35:16 +03:00
federated Merge branch '10.4' into 10.5 2022-02-01 20:33:04 +01:00
federatedx Merge branch '10.4' into 10.5 2022-02-01 20:33:04 +01:00
heap Merge 10.4 into 10.5 2021-06-08 16:03:53 +03:00
innobase MDEV-27900: aio handle partial reads/writes 2022-03-12 09:47:53 +11:00
maria Fix clang -Wtypedef-redefinition 2022-03-11 13:29:41 +02:00
mroonga MDEV-18918 SQL mode EMPTY_STRING_IS_NULL breaks RBR upon CREATE TABLE .. SELECT 2022-01-25 10:31:55 +04:00
myisam Fix clang -Wtypedef-redefinition 2022-03-11 13:29:41 +02:00
myisammrg Added 'final' to some classes to improve generated code 2020-08-04 17:27:32 +02:00
oqgraph MDEV-25373 DROP TABLE doesn't raise error while dropping non-existing table in MariaDB 10.5.9 when OQGraph SE is loaded to the server 2022-01-17 18:16:27 +01:00
perfschema MDEV-27804 Fails to build - perf schema - thread id of type uintptr_t requires header 2022-02-11 14:40:46 +11:00
rocksdb Merge branch '10.4' into 10.5 2022-02-01 20:33:04 +01:00
sequence Merge branch 'bb-10.4-release' into bb-10.5-release 2021-02-15 16:43:15 +01:00
sphinx Merge branch 'bb-10.4-release' into bb-10.5-release 2021-02-15 16:43:15 +01:00
spider Merge branch '10.4' into 10.5 2022-02-01 20:33:04 +01:00
test_sql_discovery Merge 10.4 into 10.5 2021-10-28 08:48:36 +03:00
tokudb Merge 10.4 into 10.5 2021-11-29 11:16:20 +02:00