mariadb/tpool
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
..
aio_linux.cc MDEV-27900: aio handle partial reads/writes 2022-03-12 09:47:53 +11:00
aio_simulated.cc MDEV-27900: aio handle partial reads/writes 2022-03-12 09:47:53 +11:00
aio_win.cc MDEV-16264: Add threadpool library 2019-11-15 16:50:22 +01:00
CMakeLists.txt MDEV-16264 - some improvements 2019-12-09 21:12:13 +01:00
task.cc MDEV-21674 purge_sys.stop() fails to wait for purge workers to complete 2020-02-07 08:12:58 +02:00
task_group.cc tpool - implement post-task callback (for Innodb debugging) 2020-01-12 19:08:02 +01:00
tpool.h MDEV-27900: aio handle partial reads/writes 2022-03-12 09:47:53 +11:00
tpool_generic.cc MDEV-27900: aio handle partial reads/writes 2022-03-12 09:47:53 +11:00
tpool_structs.h MDEV-21326 : Address TSAN warnings in tpool. 2020-01-12 20:30:26 +01:00
tpool_win.cc tpool - implement post-task callback (for Innodb debugging) 2020-01-12 19:08:02 +01:00
wait_notification.cc tpool - misc fixes 2020-01-12 21:34:59 +01:00