A new I/O scheduler designed for SSD through exploring performance characteristics

This paper explores intrinsic characteristics of solid state device (SSD) by modifying the system schedulers as core. Based on obtained characteristics, we design a new block I/O scheduler. Different from mechanical hard disk device (HDD), SSDs have many widely cognitive features, such as none-mechanical, inherent parallelism, high read and write speeds and so on. Considering the current system schedulers are optimized for HDD, we suppose these schedulers may be not optimal for SSD. We manage to modify the essential parts of system schedulers and test them under different workloads, then summarize the characteristics for improving performance like sorting order of requests, read-write interference and parallelism. We implement a new scheduler called Layer_Read which has the different organizations according to the access pattern on a Linux 2.6.34 kernel. The scheduler divides read requests into different sub-layers in accordance with their starting sector numbers, and dispatches requests in a round-robin way among the sub-layers in order to utilize inherent parallelism. Besides that, the scheduler continuously dispatches multiple read or write requests which can reduce the read-write interference. Through the experiment validated, the scheduler has some performance improvement when compared with other system schedulers.