That brings us back to spinning rust. To understand the limitations of rotating hard disk drives, it is important to understand the technology. With a basic grasp of how a disk drive works, the mechanical limitations quickly become obvious.
If you are accessing data sequentially in big long chunks, where the disk can read an entire track, move over just one track and read that track next, then hard disks can do pretty well. For some applications, that behavior is common. Let’s think for a moment about database applications, online transaction processing, web content serving, multi-stream media on demand, compiling an operating system kernel. These and many other applications depend heavily on random I/O or similarly, many competing sequential streams of I/O. In these cases, the tiny magnetic recording head flying over the spinning disk platters at the end of the actuator arms has to seek back and forth over the radius of the disk to access that non-sequential data where ever it happens to lie. And being a mechanical design, that takes time.
This access time, or latency, has two components: seek latency and rotational latency. Seek latency is the time it takes the actuator to move the head to the track on the platter that needs to be accessed next. On the latest, enterprise-class disks, average seek is around 3ms (0.003s). Command queuing that lets the disk decide what order it should do operations in can reduce that some. Now that the head is in the right place, you have to wait for the disk to rotate to the location where that next block of data begins. That is rotational latency. Enterprise disks rotate at 15,000 rpm, which means that it takes 4ms for a complete revolution and, on average, 2ms for the desired sector to appear beneath the head. So, the combined latency is 4-5ms. That places an inherent limit of how many I/O operations can be performed per second. At 4ms, that would be 250 IOPS.
There are some tricks that can improve that number. The most commonly used one is “short-stroking”. In this technique, only a small part at the outside edge of each disk is provisioned for use. This can be done with single disks as well as with arrays of disks. By doing this, the seek latency can be almost eliminated. That cuts the average latency down to about 2ms, so the number of random IOPS that can be performed climbs to about 500. The cost is that you have given up as much as 90% of your disk capacity. That can raise the effective cost per usable Gigabyte to about $18 at today’s prices. ($270 for 10% x 146GB => $270/15GB = $18/GB)
The disk drive manufacturers will continue to keep increasing the capacity of their products, and they will keep making the small incremental improvements in performance that they have been making for the last 20 years. Since there is no magic available to make those mechanical latencies go away; there is no big leap forward coming in disk IOPS.