I was recently in a meeting about performance where the discussion turned to how many IOPS was the database doing.
And what was interesting was how much of our thinking about performance is formed in a world where IOPS are a scarce resource because the underlying media was soooo slow.
In the modern, post spinning rust world, IOPS are practically free. The bottleneck is not the underlying media, SSD’s and later things like 3D Xpoint memory (what a horrible, horrible name for such an important technology) have essentially free IOPS. The bottleneck is no longer the media (disk drive) but instead the electronics that sit in front of the media.
The electronics include things like networks, memory busses, and CPU’s. We are now bandwidth and CPU constrained, no longer media constrained. What that means is – of course – interesting.
One practical consideration is that looking to optimize IOPS is no longer a worthy effort. Instead, we should be looking at CPU and Memory cost per IOP. And we should be willing to trade off some CPU and Memory for more IOPS to improve overall system behavior.
For folks, like myself, who grew up working really hard to try and avoid doing disk operations, embracing IO is going to be hard…
And like a buddy of mine once said, these material scientists keep investing these new exotic technologies that keep us system software engineers busy.
It’s a good time to work in systems.