Random people Random location Random misc

Direct I/O on block device: scalability of I/O submission and processing paths



One of the fundamental characteristics of database workloads on Linux kernel is that the block direct I/O requests are submitted on one cpu and the corresponding I/O completion(interrupt) happens on another cpu. Because of this behavior, different cpus involved in the I/O submission and completion contend for shared resources. As the multi-core and NUMA platforms become mainstream, more cpus contend for these shared resources and also the distance between the submission and the completion cpu increases. As such, this I/O behavior poses a critical scalability challenge to the database workloads on the Linux kernel.

This paper examines the side affects of this I/O behavior in detail. Current available I/O controllers in the market lack the capability of generating interrupt on the same cpu where the I/O is submitted. With this background, this paper looks into possible Linux kernel solutions that can mitigate this scalability problem and the challenges, opportunities associated with it.

Project: Linux kernel block direct I/O scalability 


Matthew Wilcox

Matthew has been a Linux kernel hacker since 1997. Initially specialising in the ARM port, he moved on to PA-RISC, then IA-64 and has more recently been hacking on PCI and SCSI. He lives in Ottawa, Canada, where the temperature in January is even colder than Sydney in July.

Matthew Wilcox

Matthew has been a Linux kernel hacker since 1997. Initially specialising in the ARM port, he moved on to PA-RISC, then IA-64 and has more recently been hacking on PCI and SCSI. He lives in Ottawa, Canada, where the temperature in January is even colder than Sydney in July.

© 2007 MEL8OURNE LCA2008 and Linux Australia | Linux is a registered trademark of Linus Torvalds | Site map | Valid XHTML 1.0

rja