[MDEV-21501] AIO release IO slots early in io_callback, to prevent stalls Created: 2020-01-16  Updated: 2020-04-01  Resolved: 2020-03-23

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Affects Version/s: 10.5
Fix Version/s: 10.5.2

Type: Bug Priority: Major
Reporter: Vladislav Vaintroub Assignee: Vladislav Vaintroub
Resolution: Fixed Votes: 0
Labels: None


 Description   

In rare situations, it is possible, that multiple slow IO callbacks will prevent submitting new IO.

if all IO threads are callbacks are waiting (i.e number of active write and read callbacks reached maximum specified by innodb_read/write_io_threads, and all IO "slots" ((read-_threads+write_threads)*256) were submitted, then a thread would stuck waiting for a free slot.

Thus, it makes sense to release this slot earlier, prior to calling user callback. A downside is that we'd have to copy userdata (currently, 40 bytes) before releasing the slot.


Generated at Thu Feb 08 09:07:37 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.