Looking at problems with single-request queues
The operating system must handle block devices so that they operate at their full potential. An application may need to perform I/O operations on arbitrary locations on a block device, which requires seeking multiple disk locations and can prolong the operation’s duration. When rotating mechanical drives, constant random accesses can not only degrade performance but also produce noticeable noise. Although still used in the modern day, interfaces such as Serial Advanced Technology Attachment (SATA) were the protocol of choice for mechanical drives. The original design of the kernel’s block layer was meant for a time when mechanical drives were the medium of choice. These legacy hard drives could only handle a few hundred IOPs. Two things changed this: the ascendance of multi-core processors and the advancement in drive technologies. With these changes, the bottleneck in the storage stack shifted from the physical hardware...